using System;
using System.Collections.Generic;
using System.Text;

namespace Sandia.MVCFramework.Request
{
    /// <summary>
    /// Request to add a persistent view to the user interface.  A 
    /// persistent view is one where the view is created by the view 
    /// manager once and then opened and closed repeatedly.  This is different
    /// from the AddViewRequest which creates a new view every time a request
    /// is made to open it.
    /// </summary>
    public class AddPersistentViewRequest: ThreeParameterRequest<ViewConstructor, string, string>
    {
        /// <summary>
        /// Create a new AddPersistentViewRequest
        /// </summary>
        /// <param name="viewConstructor"></param>
        /// <param name="name"></param>
        /// <param name="categoryName"></param>
        public AddPersistentViewRequest(ViewConstructor viewConstructor, string name, string categoryName) : base(viewConstructor, name, categoryName) { }

        /// <summary>
        /// Get the ViewConstructor for this request.
        /// </summary>
        public ViewConstructor ViewConstructor
        {
            get { return this.Param1; }
        }

        /// <summary>
        /// Get the name for this request
        /// </summary>
        public string Name
        {
            get { return this.Param2; }
        }

        /// <summary>
        /// Get the category name for this request.  This can be used either as a menu in which to put a button or a 
        /// toolbar where a button should be put.
        /// </summary>
        public string CategoryName
        {
            get { return this.Param3; }
        }

    }
}
